using Ninject.Modules;
using ITS.DAL.Concrete.Members;
using ITS.DAL.Members;
using ITS.DAL.Events;
using ITS.DAL.Concrete.EF.Events;
using ITS.DAL.Publications;
using ITS.DAL.Concrete.EF.Publications;
using ITS.DAL.Partners;
using ITS.DAL.Concrete.EF.Partners;
using ITS.DAL.ForTesting;
using ITS.DAL.Concrete.EF.ForTesting;
using ITS.DAL.DynamicContent;
using ITS.DAL.Concrete.EF.DynamicContent;
using ITS.DAL.Common;
using ITS.DAL.Concrete.EF.Common;
using ITS.DAL.Projects;
using ITS.DAL.Concrete.EF.Projects;
using ITS.DAL.Messaging;
using ITS.DAL.Concrete.EF.Messaging;
using ITS.DAL.News;
using ITS.DAL.Concrete.EF.News;
using ITS.DAL.Users;
using ITS.DAL.Concrete.EF.Users;
using ITS.DAL.Contents;
using ITS.DAL.Concrete.EF.Contents;

namespace ITS.Factory
{
    public class BindingRepositoriesModule : NinjectModule
    {
        public override void Load()
        {
            Bind<ICommonRepository>().To<EFCommonRepository>();
            Bind<ISettingRepository>().To<EFSettingRepository>();
            Bind<IPageContentRepository>().To<EFPageContentRepository>();
            Bind<IMemberRepository>().To<EFMemberRepository>();
            Bind<IEventRepository>().To<EFEventRepository>();
            Bind<IPublicationRepository>().To<EFPublicationRepository>();
            Bind<IPartnerRepository>().To<EFPartnerRepository>();
            Bind<IForTestingRepository>().To<EFForTestingRepository>();
            Bind<IProjectRepository>().To<EFProjectRepository>();
            Bind<IEmailRepository>().To<EFEmailRepository>();
            Bind<INewsRepository>().To<EFNewsRepository>();
            Bind<INewsTagRepository>().To<EFNewsTagRepository>();
            Bind<IUserAccountRepository>().To<EFUserAccountRepository>();
            Bind<IContentRepository>().To<EFContentRepository>();
        }
    }
}
